The invention relates generally to the processing and display of images using computers and more specifically to techniques for providing compatibility with multiple types of image information.
Modern computer systems are provided with the capability to display three-dimensional (3-D) graphics, as well as images encoded in standardized compressed formats, for example, formats defined by the Moving Picture Experts Group (MPEG). However, the standards continue to evolve, and the commands for displaying the images continue to change. Such changes have necessitated the installation of updated hardware and software used to display the images.
For example, the standards for 3-D graphics have changed frequently, while the MPEG standards have remained relatively fixed. As the standards for 3-D graphics have changed, the 3-D pipe used to process the 3-D graphics have had to change to accommodate the revised standards. When a change is made to the 3-D pipe, it may affect the operation of the 3-D pipe when processing MPEG video.
As a further complication, design of the software decoder used to process MPEG video may be influenced by an entity over which little or no control may be exerted. Thus, adaptation to new 3-D graphics standards has had to occur without change to the MPEG software decoder.
Also, the underlying graphics processing hardware changes, with hardware offering improved performance becoming available and replacing previously available hardware. Thus, compatibility issues can arise as the underlying graphics processing hardware is upgraded.
By sharing hardware between MPEG video and 3-D graphics processing, increased efficiency may be achieved. For example, the overall amount of hardware may be substantially reduced, the memory interface may be shared, and the texture caches may be shared. While this is advantageous, changes in the hardware has required changes in the command set used to control the hardware. Thus, a technique is needed to keep software packets generated by a software front-end usable within a graphics processor even as the graphics standards change and the underlying graphics processing hardware changes.